﻿// 4547. 伊格内修斯和公主IV.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <unordered_map>


using namespace std;
/*
https://www.acwing.com/problem/content/4550/

给定一个长度为 N的整数数组 a1,a2,…,aN。

保证 N是一个奇数。

已知，有一个数在数组中至少出现了 (N+1)/2次。

请你找出这个数。

输入格式
输入包含多组测试数据。

每组数据第一行包含一个整数 N。

第二行包含 N个整数 a1,a2,…,aN。

输出格式
每组数据输出一行结果，一个整数，表示所求的数。

数据范围
每个输入最多包含 10 组数据。
1≤N≤999999,
1≤ai≤106。

输入样例：
5
1 3 2 3 3

11
1 1 1 1 1 5 5 5 5 5 5
7
1 1 1 1 1 1 1
输出样例：
3
5
1
*/


unordered_map<int, int> mm;

int n;
int arr[1000010];

//int main()
//{
//	while (~scanf("%d", &n)) {
//		mm.clear();
//		int ans = -1;
//		for (int i = 0; i < n; i++) {
//			cin >> arr[i];
//			mm[arr[i]]++;
//			if (mm[arr[i]] >= (n + 1) / 2) {
//				ans = arr[i];
//			}
//		}
//		cout << ans << endl;
//	}
//
//
//	return 0;
//}

int maxVal = 0;
int maxCnt = 0;


int main() {
	while (~scanf("%d", &n)) {
		maxVal = 0; maxCnt = 0;
		for (int i = 0; i < n; i++) {
			scanf("%d",&arr[i]);
			if (maxCnt == 0) {
				maxVal = arr[i];
				maxCnt = 1;
			}
			else if(maxVal == arr[i]) {
				maxCnt++;
			}
			else {
				maxCnt--;
			}
		}
		printf("%d\n", maxVal);
	}



	return 0;
}